﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using UploadersLib.Helpers;

namespace NotYetTweetRead
{
    //セーブデータ
    public class TwitterSaveData
    {
        public string Version;
        //
        public string AccessToken = "";
        public string AccessTokenSecret = "";
        public string Password = "";
        public string UserName = "";
        //UI
        public bool AutoUpdate { set; get; }
        public bool UpDown { set; get; }
        public int TreeViewWidth;
        public bool UpdateCheck;

        public List<TwitterUserSaveData> UserData = new List<TwitterUserSaveData>();
    }
    //ユーザーセーブデータ
    public class TwitterUserSaveData
    {
        public string UserName; //ユーザー名（ユニーク）
        public string ScreenName;     //表示名
        public string CallName;
        public ulong UserID;    //ユーザーID    
        public ulong SinceID;   //未読ID    
        public int UserType;    //ユーザータイプ
        public int TweetType;    //ユーザータイプ
        public bool Checked;    //チェック
    }


    //スレッドデータ
    public class TwitterThreadData
    {
        public TwitterUserData g_tlv;
        public bool g_bTimer;
        public bool g_bNew;
        public int g_tweetNum;
    }
    //ユーザーに対する項目
    public class TwitterUserData
    {
        public TwitterUserData() { }

        //
        public const int TYPE_HOME = 0;
        public const int TYPE_PROFILE = 1;
        //ツイートのタイプ
        public const int TWEET_TYPE_NULL = 0;
        public const int TWEET_TYPE_NORMAL = 1;
        public const int TWEET_TYPE_SEARCH = 2;
        public const int TWEET_TYPE_FOLLOW = 3;
        public const int TWEET_TYPE_UPDATE = 4;

        public string UserName { set; get; }
        public string ScreenName { set; get; }
        public string CallName { set; get; }
        public string CallScreenName { set; get; }
        public ulong UserID { set; get; }
        public int SelectIndex { set; get; }   //選択されたIndex
        public ulong SelectID { set; get; }   //選択されたID
        public ulong NewID { set; get; }      //一番新しいID
        public ulong OldID { set; get; }       //一番新しいID
        public int NotReadNum { set; get; }     //未読数
        public int IconIndex { set; get; }    //アイコンIndex
        public Bitmap Icon { set; get; }         //アイコン
        public int type { set; get; }
        public int TweetType { set; get; }
        public TreeNode node { set; get; }

        public List<TwitterTweetData> tlvi = new List<TwitterTweetData>();
    }
    //ツイートに対する項目
    public class TwitterTweetData
    {
        // コピーを作成するメソッド
        public TwitterTweetData Clone()
        {
            return (TwitterTweetData)MemberwiseClone();
        }

        public int this[int i]
        {
            set { this[i] = value; }
            get { return this[i]; }
        }
        public ulong TweetId; //全項目に持っているID
        public string Tweet = "";
        public string ReTweet = "";
        public string UserName = "";
        public string ScreenName = "";
        public string Source = "";
        public ulong UserID;
        public int ImageIndex;
        public string IconURL = "";
        public Bitmap Icon;
        public DateTime TweetTime;
        public bool Favorited;
        public bool ReTweeted;
    }
}
